The paradigm for the Internet is that of a client-server relationship where the Internet clients (browsers) communicate with Internet servers. To provide greater access to the Internet, communication protocols and languages utilized by the clients and servers have become standardized. These protocols include Hyper-Text Transfer Protocol (HTTP), which is the communications protocol used for communications between clients and servers, and the Transmission Control Protocol/Internet Protocol (TCP/IP). Also standardized is the language by which clients and servers communicate, called Hyper-Text Markup Language (HTML).
Given the growth in popularity of the World Wide Web, the client-server paradigm has become pervasive. The browser or client acts as the user interface and sends requests to the server which satisfies those requests. The server processes the browser requests and returns the requested response as an HTML data segment of an HTTP data stream. The popularity of the World Wide Web has lead to a large install base for browsers and servers in the computer marketplace. The standardization of the languages and protocol of the Internet, in addition to the significant installed base, has facilitated the creation of a significant number of forms-based applications which reside on the World Wide Web. A forms-based application is one which presents templates or forms where only minor modifications are made and data fields are filled in. This allows for effective transmission of information to the users without requiring a customized page in response to each request for information.
As the World Wide Web has increased in popularity, so has the concept of mobile computing. The price of notebook or portable computers has significantly decreased, the power and performance has significantly increased and the size has decreased such that mobile computing is quickly becoming the method of choice for many professionals. The use of laptop computers, notebook computers, Personal Digital Assistants (PDAs) and other portable devices has led to an increase in demands for wireless communications. Wireless wide area networks, cellular communications and packet radio, however, suffer from significant limitations if used in a web context. The high cost per byte of communications, slow response time, low bandwidth and unreliability all hamper the use of wireless technology for the communications protocol of the Internet. In addition to the disadvantages of using wireless communications in the Internet environment, traditional caching techniques are also only of limited use. Refreshing cached data received from a web server presents reliability and availability difficulties when used in the Internet environment. For example, if cached data is refreshed tech time a new instance of a web browser is initiated then a number of unnecessary browser requests may be generated if the information is not utilized during the particular instance of the web browser. If cached data is not refreshed then the data in the cache may not be reliable.
The initial problem of the inefficiencies of present caching algorithms was addressed in the invention presented in application Ser. No. 08/601,753 entitled Time Coherent Caching System filed on Feb. 15, 1996 and assigned to the assignee of the present invention. In the Time Coherent Caching System application, a method for caching data received from a first application and to be provided to a second application, in response to a request from the second application, was provided. The method included storing a data stream to be received from the first application and to be provided to the second application in a cache to create a client cache entry corresponding to the request from the second application. Requests from the second application are interrogated to determine if a client cache entry exists corresponding to the request. If a client cache entry exists which corresponds to the request then the client cache entry time record for the client cache entry corresponding to the request from the second application is evaluated to determine if the client cache entry corresponding to the request from the second application was created within a predetermined client coherency time interval prior to the second application requesting the information. The client cache entry is supplied to the second application in response to the request if the client cache entry was created within a predetermined client coherency time interval prior to the second application requesting the information. In flier enhancements to the referenced application, client cache entries are maintained across multiple instances of the second application. Several variations were provided in the referenced application to this theme.
In addition to the above mentioned application, Application Ser. No. 08/601,903 entitled Differencing Communication System was filed by the assignee of the present invention to reduce the impact of the wireless bandwidth being significantly lower than that of terrestrial links. In the Differencing Communication System application, a method of reducing the data transmitted over a communication link from a first application resident in a first computer to a second application resident in a second computer, where the data is transmitted over an external communication link from the first computer to the second computer, was introduced. One aspect of that invention included storing a data stream from the first application to be provided to the second application in response to a request from the second application in a cache resident in the first computer to create a server base cache entry. The data stream to be provided to the second application in response to a request from the second application is also stored in a cache resident in the second computer to create a client base cache entry. Requests from the second application are evaluated to determine if a client base cache entry corresponding to the interrogated request exists to provide a client base form. Requests from the second application are also interrogated to determine if a server base cache entry corresponding to the interrogated request exists to provide a server base form. The data stream corresponding to the response originated by the first application in response to the interrogated request from the second application is intercepted prior to transmission of the response on the external communication link and compared to the server base form to provide difference data corresponding to the difference between the intercepted response and the server base form. The difference data is sent to the second computer over the external communications link and the difference data transmitted over the external communications link sent by the first computer is acquired from the external communication link. The response data stream corresponding to the communication from the first application is reconstructed from the client/server specific data stream received over the external communication link by combining the client base form with the difference data received over the external communication link to create a response data stream corresponding to the intercepted response. The reconstructed data stream corresponding to the intercepted response is provided to the second application. For further information or variations of this invention, see Application Ser. No. 08/601,903.